//package data;
//
//import java.io.BufferedReader;
//import java.io.File;
//import java.io.FileReader;
//import java.io.FileWriter;
//import java.io.IOException;
//import java.io.InputStreamReader;
//import java.io.Reader;
//import java.io.StringReader;
//import java.net.URL;
//import java.net.URLConnection;
//import java.util.ArrayList;
//import java.util.Hashtable;
//
//import javax.swing.text.html.HTMLEditorKit;
//import javax.swing.text.html.parser.ParserDelegator;
//
//import utils.Tupla;
//
//import ClasesPrincipales.Capitulo;
//import ClasesPrincipales.Serie;
//import ClasesPrincipales.Temporada;
//
//public class SeriesYonkisExtractor {
//
//	/**
//	 * Este método se mete en la página de seriesYonkis y saca las URL's de todas las series
//	 */
//	public void downloadListaSeries() {
//		String path = "http://www.seriesyonkis.com/lista-series.php";
//		String pageContentComplet = HTMLParser.downloadURL(path);
//
//		String[] pageCompletSplit = pageContentComplet.split("<h1>Lista de series con capítulos:</h1>");
//
//		pageCompletSplit = pageCompletSplit[1].split("<h1>Lista de mini-series con capítulos:</h1>");
//		ArrayList<Tupla> listaSeries = HTMLParser.extractLinks(pageCompletSplit[0]);
//		listaSeries.remove(listaSeries.size() - 1);
//		guardarListaEnFichero(listaSeries, "Series.txt");
//
//		pageCompletSplit = pageCompletSplit[1].split("<h1>Lista de dibujos animados con capítulos:</h1>");
//		ArrayList<Tupla> listaMiniSeries = HTMLParser.extractLinks(pageCompletSplit[0]);
//		listaMiniSeries.remove(listaMiniSeries.size() - 1);
//		guardarListaEnFichero(listaMiniSeries, "MiniSeries.txt");
//
//		pageCompletSplit = pageCompletSplit[1].split("<h1>Lista de series de anime con capítulos:</h1>");
//		ArrayList<Tupla> listaSeriesDibujos = HTMLParser.extractLinks(pageCompletSplit[0]);
//		listaSeriesDibujos.remove(listaSeriesDibujos.size() - 1);
//		guardarListaEnFichero(listaSeriesDibujos, "Dibujos.txt");
//
//		pageCompletSplit = pageCompletSplit[1].split("<h1>Lista de series sin clasificar:</h1>");
//		ArrayList<Tupla> listaSeriesAnime = HTMLParser.extractLinks(pageCompletSplit[0]);
//		listaSeriesAnime.remove(listaSeriesAnime.size() - 1);
//		guardarListaEnFichero(listaSeriesAnime, "Anime.txt");
//	}
//
//	/**
//	 * Para cada serie que lee del fichero dado, accede a su página y extrae la info relativa a las temporadas de la serie, así como su descripción.
//	 *
//	 * @param filePath
//	 */
//	public void extractSeriesInformation(String filePath) {
//		File archivo = null;
//		FileReader fr = null;
//		BufferedReader br = null;
//		// Serie serie = new Serie(NOMBRE, uRL)
//		try {
//			// Apertura del fichero y creacion de BufferedReader para poder
//			// hacer una lectura comoda (disponer del metodo readLine()).
//			archivo = new File(filePath);
//			fr = new FileReader(archivo);
//			br = new BufferedReader(fr);
//
//			// Lectura del fichero
//			String linea;
//			while ((linea = br.readLine()) != null) {
//				System.out.println("Extrayendo info de la serie:" + linea);
//				downloadAndExtractTemporadas(br.readLine());
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		} finally {
//			// En el finally cerramos el fichero, para asegurarnos
//			// que se cierra tanto si todo va bien como si salta
//			// una excepcion.
//			try {
//				if (null != fr) {
//					fr.close();
//				}
//			} catch (Exception e2) {
//				e2.printStackTrace();
//			}
//		}
//
//	}
//
//	/**
//	 * Este método se mete en la URL de la serie dada y por cada Temporada que hay coge todos los capítulos y los va parseando.
//	 *
//	 * @param url
//	 * @return ArrayList<Temporada>, temporadas de la serie con sus capitulos
//	 */
//	private ArrayList<Temporada> downloadAndExtractTemporadas(String path) {
//		// TODO descripcion!!
//		ArrayList<Temporada> temporadas = new ArrayList<Temporada>();
//		String pageContent = HTMLParser.downloadURL(path);
//
//		String allTemporadas = formatearTemporadas(pageContent);
//
//		if (!allTemporadas.isEmpty()) {
//			try {
//				ArrayList<Tupla> linksCapitulos = HTMLParser.extractLinks(allTemporadas);
//				for(Tupla tupla : linksCapitulos){
//					System.out.println("Extrayendo información del capítulo " + tupla.getElem1().toString());
//
//				}
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//		return null;
//	}
//
//	private Capitulo downloadAndExtractCapitulo(String path){
//		String pageContent = HTMLParser.downloadURL(path);
//		return null;
//
//
//	}
//	/**
//	 * Este método se mete en la URL de la serie dada y por cada Temporada que hay coge todos los capítulos y los va parseando.
//	 *
//	 * @param url
//	 * @return
//	 */
//	private ArrayList<Temporada> extractTemporada(String temporadaHTMLtext) {
//		// 1º cambiar <a por \n<a
//		// 2º Eliminar _<h4>\n
//		// 3º Eliminar </li>
//		return null;
//	}
//
//	private String formatearStringListaSeries(String lista) {
//		// QUITAR ESTO Y USAR UN PARSER DE HTML
//		String listaFormateada = lista.replace("<ul>", "");
//		listaFormateada = listaFormateada.replace("\n", "");
//		listaFormateada = listaFormateada.replace("<li>", "");
//		listaFormateada = listaFormateada.replace("</a>", "\n");
//		listaFormateada = listaFormateada.replace("</li>", "");
//		listaFormateada = listaFormateada.replace("<a title=", "");
//		listaFormateada = listaFormateada.replace("" + '"', "");
//		listaFormateada = listaFormateada.replace(" href=", "\n");
//		listaFormateada = listaFormateada.replace("</ul>", "");
//		listaFormateada = listaFormateada.replace(">", "\n");
//		return listaFormateada;
//	}
//
//	private String formatearTemporadas(String pageContent) {
//		String[] pageContentSplit = pageContent.split("<div id=" + '"' + "tempycaps" + '"' + ">\n");
//		pageContentSplit = pageContentSplit[1].split("</div>", 2);
//		String temporadas = pageContentSplit[0];
//		// temporadas = temporadas.replace("<ul>", "");
//		// temporadas = temporadas.replace("</ul>", "\n");
//		// temporadas = temporadas.replace("<br />", "");
//		// temporadas = temporadas.replace("<li class=" + '"' + "page_item" + '"' + ">", "");
//
//		return temporadas;
//	}
//
//	private void guardarListaEnFichero(ArrayList<Tupla> lista, String fileName) {
//		File file = new File("./src/data/" + fileName);
//		FileWriter fw;
//		try {
//			fw = new FileWriter(file);
//			for (Tupla tupla : lista) {
//				fw.append(tupla.getElem1().toString() + "\n");
//				fw.append(tupla.getElem2().toString() + "\n");
//			}
//			fw.close();
//		} catch (IOException e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//	}
//
//	public static void main(String[] params) {
//
//		SeriesYonkisExtractor ex = new SeriesYonkisExtractor();
//
//		ex.downloadListaSeries();
//		ex.extractSeriesInformation("./src/data/Series.txt");
//		// ex.guardarListaEnFichero(ex.getListaSeriesYURL());
//	}
//}
